搜索与排序:海量数据的基石
搜索与排序不仅是算法课的开篇,更是计算机科学处理数据的底层逻辑。数据的价值取决于其被检索和组织的效率。本节通过最基础的顺序搜索揭示算法评估的核心——即在不同数据形态下,如何通过线性比对来定位目标。
1. 逻辑与代价
顺序搜索:从列表中的第一个元素开始,沿着默认的顺序逐个查看,直到找到目标元素或者查完列表。其时间复杂度是 $O(n)$。
2. 性能对比:无序 vs 有序
在无序列表中(见下表),无论成功与否,平均比对次数通常与 $n$ 成正比。而在有序列表中,利用数据的排列规则可以实现“提前终止”:当遇到比目标值更大的元素时即可断定目标不存在。虽然这未改变 $O(n)$ 的本质,但优化了失败查找的平均效率。
| 列表类型 | 目标存在 (平均) | 目标不存在 (平均) |
|---|---|---|
| 无序 (表 5-1) | $n/2$ | $n$ |
| 有序 (表 5-2) | $n/2$ | $n/2$ (提升) |